package com.zzy.aop.version1;

import java.lang.reflect.Method;

/**
 * 灵光一现，简化模拟AOP的实现（猜的，主要训练编程思维，回顾和运用所学知识）
 */
public class AOP {

    /**
     * 此方法模拟一个切面方法
     *      根据需求，此处不能传入Method对象，因为如果只传入Method对象，则没有办法调用Method对象的invoke方法，invoke方法需要一个对象实例
     */
    public static <T> void aopMethod(T t){
        Class classObj;
        Method methodObj;

        classObj = t instanceof Class ? ((Class) t) : null;

        if (classObj != null){
            //类对象
            System.out.println("类对象");
        } else {
            //方法对象
            methodObj = (Method) t;
            System.out.println("方法对象");
        }
    }

}
